home *** CD-ROM | disk | FTP | other *** search
- ;------------------------------------------------------------------------------
- ; .ss.
- ; `²²'
- ; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
- ; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
- ; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
- ; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
- ; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
- ; .sS²°$$$²²°"' d²°'
- ; .$$² .$$'
- ; $$$.,d$$'
- ; `²S$$S²'
- ;------------------------------------------------------------------------------
- ; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
- ;------------------------------------------------------------------------------
- ; PPE 3.O1 (Encryption type I) - Analysis ON - Postprocessing ON
- ;------------------------------------------------------------------------------
-
- Boolean BOOLEAN001
- Boolean BOOLEAN002
- Boolean BOOLEAN003
- Boolean BOOLEAN004
- Boolean BOOLEAN005
- Boolean BOOLEAN006
- Boolean BOOLEAN007
- Boolean BOOLEAN008
- Boolean BOOLEAN009
- Boolean BOOLEAN010
- Boolean BOOLEAN011
- Boolean BOOLEAN012
- Boolean BOOLEAN013
- Boolean BOOLEAN014
- Boolean BOOLEAN015
- Boolean BOOLEAN016
- Boolean BOOLEAN017
- Boolean BOOLEAN018
- Boolean BOOLEAN019
- Boolean BOOLEAN020
- Boolean BOOLEAN021
- Boolean BOOLEAN022
- Date DATE002
- Date DATE003
- Integer INTEGER003
- Integer INTEGER004
- Integer INTEGER005
- Integer TINTEGER006(5)
- Integer INTEGER007
- Integer INTEGER008
- Integer INTEGER009
- Integer INTEGER010
- Integer INTEGER011
- String STRING006
- String STRING007
- String STRING008
- String STRING009
- String STRING010
- String STRING011
- String STRING012
- String STRING013
- String STRING014
- String TSTRING015(5)
- String STRING016
- String STRING017
- String STRING018
- String STRING019
- String STRING020
- String STRING021
- String STRING022
- String STRING023
- String STRING024
- String STRING025
- String STRING026
- String STRING027
- String STRING028
- String STRING029
- String STRING030
- String STRING031
- String STRING032
- String STRING033
- String STRING034
- String STRING035
- String STRING036
- String STRING037
- String STRING038
- String STRING039
- String STRING040
- String STRING041
- String STRING042
- String STRING043
- String STRING044
- String STRING045
- String STRING046
- String STRING047
- String STRING048
- String STRING049
- String STRING050
- String STRING051
- String STRING052
- String STRING053
- String STRING054
- String STRING055
- Byte BYTE001
- Byte BYTE002
- Byte BYTE003
- Byte BYTE004
- Byte BYTE005
- Byte BYTE006
- Byte BYTE007
- Byte BYTE008
- Byte BYTE009
- Byte BYTE010
- Byte BYTE011
- Byte BYTE012
- Byte BYTE013
- Byte TBYTE014(4)
- Byte TBYTE015(20)
- Byte BYTE016
- Byte BYTE017
- Byte BYTE018
- Byte BYTE019
- Byte BYTE020
- Byte BYTE021
- Byte BYTE022
- Byte BYTE023
- Byte BYTE024
- Byte BYTE025
- Byte BYTE026
- Byte BYTE027
- Int INT001
- Int INT002
- Int INT003
- Int INT004
- Int INT005
- Int INT006
- Int INT007
- Int INT008
- Int INT009
-
- ;------------------------------------------------------------------------------
-
- INT008 = 179
- STRING012 = Chr(13) + Chr(10)
- STRING054 = Chr(34)
- STRING055 = STRING054 + "," + STRING054
- STRING033 = Replace(Space(60), " ", "=")
- STRING034 = Replace(Space(60), " ", "-")
- STRING039 = Chr(255)
- TBYTE014(1) = 10
- TBYTE014(2) = 16
- TBYTE014(3) = 8
- TBYTE014(4) = 2
- BYTE024 = 0
- BOOLEAN013 = 0
- TBYTE015(1) = 30
- TBYTE015(2) = 30
- TBYTE015(3) = 15
- TBYTE015(4) = 60
- TBYTE015(5) = 60
- TBYTE015(6) = 60
- TBYTE015(7) = 60
- TBYTE015(8) = 60
- TBYTE015(9) = 50
- TBYTE015(10) = 50
- TBYTE015(11) = 25
- TBYTE015(12) = 10
- TBYTE015(13) = 10
- TBYTE015(14) = 15
- TBYTE015(15) = 25
- TBYTE015(16) = 25
- TBYTE015(17) = 12
- TBYTE015(18) = 24
- TBYTE015(19) = 13
- TBYTE015(20) = 13
- Newline
- STRING027 = "@X0FPPE-Script v1.70 (11-01-94) - PCBoard Scripting Program"
- STRING028 = "@X0FCopyright (C) 1993,1994 Gary Meeker. All Rights Reserved."
- PrintLn STRING027
- PrintLn STRING028
- Newline
- GetUser
- GetToken STRING006
- BYTE007 = 1
- BOOLEAN020 = 0
- If (STRING006 == "") STRING006 = PPEPath() + PPEName() + ".CNF"
- If (Exist(STRING006)) Goto LABEL001
- If (Exist(PPEPath() + STRING006)) Then
- STRING006 = PPEPath() + STRING006
- Else
- STRING027 = "PPE-Script: Missing Config file: " + STRING006
- PrintLn STRING027
- Log STRING027, 0
- Stop
- Endif
- :LABEL001
- FOpen 1, STRING006, 0, 0
- FGet 1, STRING007
- FGet 1, STRING038
- FGet 1, INTEGER004
- FGet 1, STRING008
- FGet 1, STRING027
- Tokenize STRING027
- GetToken BYTE013
- GetToken INT001
- GetToken INT002
- Gosub LABEL010
- FGet 1, STRING027
- Tokenize STRING027
- GetToken BYTE011
- GetToken INT006
- GetToken BYTE009
- GetToken STRING009
- FGet 1, STRING027
- Tokenize STRING027
- GetToken BOOLEAN001
- GetToken BOOLEAN002
- GetToken BOOLEAN003
- GetToken BOOLEAN004
- Gosub LABEL008
- BYTE019 = BYTE018
- Gosub LABEL008
- BYTE020 = BYTE018
- GetToken BOOLEAN005
- FGet 1, STRING027
- Tokenize STRING027
- GetToken BOOLEAN008
- GetToken BOOLEAN009
- GetToken BOOLEAN010
- Gosub LABEL008
- BYTE021 = BYTE018
- Gosub LABEL008
- BYTE022 = BYTE018
- Gosub LABEL008
- BYTE023 = BYTE018
- FGet 1, STRING010
- FGet 1, STRING011
- FGet 1, STRING013
- FGet 1, STRING014
- FGet 1, TSTRING015(BYTE007)
- FGet 1, STRING016
- FGet 1, STRING044
- FGet 1, STRING027
- Tokenize Replace(STRING027, " ", Chr(255))
- STRING049 = Replace(GetToken(), Chr(255), " ")
- GetToken STRING050
- GetToken STRING051
- GetToken STRING052
- GetToken BOOLEAN014
- FClose 1
- If (STRING050 == "") STRING050 = "P"
- If (STRING051 == "") STRING051 = "O"
- If (BYTE013 == 0) BYTE013 = 3
- If (STRING014 == "") STRING014 = PPEPath()
- If (BYTE019 == 0) BYTE019 = DefColor()
- If (BYTE020 == 0) BYTE020 = DefColor()
- If (BYTE021 == 0) BYTE021 = DefColor()
- If (BYTE022 == 0) BYTE022 = DefColor()
- If (BYTE023 == 0) BYTE023 = DefColor()
- If (STRING009 == "") STRING009 = "MF"
- STRING023 = " "
- BYTE010 = 1
- Gosub LABEL014
- STRING032 = Upper(STRING023)
- STRING023 = ""
- INT006 = BYTE011
- BYTE009 = 1
- BYTE010 = 8
- Gosub LABEL014
- STRING022 = STRING023
- If (STRING022 <> "") Gosub LABEL018
- BYTE008 = Asc(Mid(STRING028, 32, 1)) - Asc(Mid(STRING028, 11, 1))
- If ((CurSec() < INT001) || (CurSec() > INT002)) Then
- DispStr STRING010
- Newline
- Stop
- Endif
- Print "Initializing data..."
- STRING007 = Upper(STRING007)
- TSTRING015(BYTE007) = Upper(TSTRING015(BYTE007))
- STRING040 = Mask_Ascii() + "ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "
- If (BYTE008 <> TBYTE014(2) + TBYTE014(4)) Stop
- BYTE001 = 0
- Gosub LABEL016
- Print Chr(13)
- If (INTEGER004 == INTEGER003 * INT008) Then
- PrintLn "@X0FRegistered to: @X0E", STRING038, "@X0F"
- Else
- Print "@X0FUnregistered Evaluation Copy for [@X0E", STRING007, "@X0F] "
- For INT005 = 1 To TBYTE014(2)
- ResetDisp
- If (INT005 % TBYTE014(4) == 0) Then
- Print "@X08.@X0F"
- Continue
- Endif
- Delay BYTE008
- Next
- ResetDisp
- Newline
- Endif
- Newline
- STRING007 = U_Name()
- If (STRING008 <> "") Then
- If (Exist(STRING008)) DispFile STRING008, 4 + 2 + 1
- Endif
- If (STRING011 <> "") Then
- STRING027 = YesChar()
- InputYN STRING011, STRING027, BYTE019
- Newline
- If (STRING027 == NoChar()) Then
- If (INT003 > -1) Gosub LABEL022
- Stop
- Endif
- Endif
- If (STRING044 <> "") Then
- BYTE024 = 7
- BYTE002 = 7
- STRING027 = STRING044
- Gosub LABEL031
- Endif
- BYTE002 = 0
- STRING027 = STRING016
- If (STRING027 <> "") Gosub LABEL031
- BOOLEAN018 = 0
- BOOLEAN019 = 0
- STRING023 = ""
- While (BYTE007 > 0) Do
- If (TSTRING015(BYTE007) == "") Goto LABEL002
- Gosub LABEL019
- FOpen BYTE007, TSTRING015(BYTE007), 0, 0
- TSTRING015(BYTE007) = ""
- TINTEGER006(BYTE007) = 0
- :LABEL002
- BOOLEAN017 = BOOLEAN018
- BOOLEAN015 = BOOLEAN019
- BOOLEAN022 = 0
- STRING037 = ""
- :LABEL003
- If (BOOLEAN015) Goto LABEL007
- STRING021 = ""
- If (STRING023 <> "") Then
- STRING022 = STRING023
- STRING023 = ""
- Else
- STRING022 = ""
- Endif
- FGet BYTE007, STRING027
- BOOLEAN015 = (STRING027 == "")
- If (BOOLEAN015) Goto LABEL007
- BYTE001 = InStr(">%@RIMJBCSWDT!*$:P?¿", Left(STRING027, 1))
- If ((BYTE001 == 0) || (BOOLEAN017 && (BYTE001 < 18))) Goto LABEL006
- STRING011 = Mid(STRING027, TBYTE014(4), Len(STRING027) - 1)
- If ((BYTE001 > 5) && (BYTE001 < 17)) Then
- Tokenize Replace(STRING027, " ", STRING039)
- GetToken STRING028
- INT006 = Strip(GetToken(), STRING039)
- Endif
- If ((BYTE001 >= 1) && (BYTE001 <= 3)) Then
- If (BYTE001 < 3) FPutLn BYTE002, STRING011
- If (BYTE001 > 1) Then
- If (Left(STRING011, 1) <> "%") Then
- STRING011 = STRING011 + STRING012
- Endif
- DispStr STRING011
- Endif
- Else
- Select Case (BYTE001)
- Case 4
- DispFile STRING011, 4 + 2 + 1
- Case 5
- Log STRING011, 0
- Case 6, 7
- Select Case (INT006)
- Case 1
- BOOLEAN016 = BYTE003
- Case 2
- BOOLEAN016 = !BYTE003
- Case 3
- BOOLEAN016 = !BOOLEAN020
- Case 4
- BOOLEAN016 = (BYTE003 && !BOOLEAN020)
- Case 5
- BOOLEAN016 = (!BYTE003 && !BOOLEAN020)
- Case Else
- BOOLEAN016 = 1
- End Select
- If (BOOLEAN016) Then
- If (BYTE001 == 7) Gosub LABEL009
- Gosub LABEL010
- Gosub LABEL022
- Endif
- Case 8
- INT006 = Strip(GetToken(), STRING039)
- STRING041 = Replace(GetToken(), STRING039, " ")
- STRING042 = Replace(GetToken(), STRING039, " ")
- STRING043 = Replace(GetToken(), STRING039, " ")
- STRING028 = Strip(GetToken(), STRING039)
- BOOLEAN006 = Strip(GetToken(), STRING039)
- BOOLEAN007 = Strip(GetToken(), STRING039)
- DATE003 = Strip(GetToken(), STRING039)
- STRING018 = Strip(GetToken(), STRING039)
- If ((STRING018 == "") && (BYTE024 > 0)) Then
- STRING018 = STRING044
- FClose BYTE024
- Endif
- Message INT006, STRING041, STRING042, STRING043, STRING028, BOOLEAN006, BOOLEAN007, DATE003, STRING018
- If ((STRING018 == "") && (BYTE024 > 0)) FAppend BYTE024, STRING044, 2, 0
- Case 9
- LastIn Strip(GetToken(), STRING039)
- Case 10
- Gosub LABEL011
- If (BOOLEAN016) Then
- STRING021 = STRING019
- Else
- STRING021 = STRING020
- Endif
- Case 11
- Gosub LABEL011
- If (BOOLEAN016) Then
- If (STRING019 <> "") Call STRING019 + " " + STRING036
- Endif
- Case 12
- Gosub LABEL011
- If (BOOLEAN016) Then
- If (STRING019 <> "") Then
- WrUSys
- Shell 0, TINTEGER006(BYTE007), STRING019, STRING036
- RdUSys
- Endif
- Endif
- Case 13
- Gosub LABEL011
- Gosub LABEL012
- STRING030 = Left(LastAns(), BYTE010)
- Select Case (INT006)
- Case 1
- U_Cmnt1 = Left(U_Cmnt1, BYTE009 - 1) + STRING030 + Right(U_Cmnt1, 31 - BYTE009 - BYTE010)
- Case 2
- U_Cmnt2 = Left(U_Cmnt2, BYTE009 - 1) + STRING030 + Right(U_Cmnt2, 31 - BYTE009 - BYTE010)
- Case 3
- U_Ver = Left(U_Ver, BYTE009 - 1) + STRING030 + Right(U_Ver, 26 - BYTE009 - BYTE010)
- Case 4, 8
- U_Notes(INT006 - 4) = Left(U_Notes(INT006 - 4), BYTE009 - 1) + STRING030 + Right(U_Notes(INT006 - 4), 61 - BYTE009 - BYTE010)
- Case 9, 14
- U_Addr(INT006 - 9) = Left(U_Addr(INT006 - 9), BYTE009 - 1) + STRING030 + Right(U_Addr(INT006 - 9), 61 - BYTE009 - BYTE010)
- End Select
- :LABEL004
- BOOLEAN013 = 1
- Case 14
- Gosub LABEL011
- Gosub LABEL014
- Case 15
- STRING018 = Strip(GetToken(), STRING039)
- STRING019 = Strip(GetToken(), STRING039)
- STRING020 = Strip(GetToken(), STRING039)
- BYTE009 = 1
- BYTE010 = TBYTE015(INT006)
- Gosub LABEL014
- STRING022 = STRING023
- If (STRING018 <> "") Gosub LABEL015
- Gosub LABEL012
- STRING023 = ""
- Case 16
- BOOLEAN016 = GetToken()
- STRING018 = Strip(GetToken(), STRING039)
- STRING046 = Strip(GetToken(), STRING039)
- STRING047 = Strip(GetToken(), STRING039)
- STRING019 = Strip(GetToken(), STRING039)
- STRING020 = Strip(GetToken(), STRING039)
- Gosub LABEL032
- Case 17
- Gosub LABEL016
- If (BOOLEAN012) Then
- PrintLn "@X0CSysop: @X0F", STRING007
- PrintLn "@X0C BBS: @X0F", STRING038
- PrintLn "@X0CYour Registration Number is: [@X0F", INTEGER003 * INT008, "@X0C]"
- Endif
- Case 18
- If (STRING037 == "") Then
- BOOLEAN017 = 0
- BOOLEAN018 = 0
- Endif
- Case 19
- If (STRING037 == Upper(STRING011)) Then
- BOOLEAN017 = 0
- BOOLEAN018 = 0
- STRING037 = ""
- Endif
- Case 20
- BOOLEAN022 = STRING011
- FGet BYTE007, STRING017
- Tokenize Replace(STRING017, " ", STRING039)
- GetToken STRING024
- GetToken BYTE009
- GetToken BYTE010
- STRING027 = Strip(GetToken(), STRING039)
- If (STRING022 == "") Then
- STRING022 = Replace(GetToken(), STRING039, " ")
- Else
- GetToken STRING030
- Endif
- STRING018 = Strip(GetToken(), STRING039)
- STRING019 = Strip(GetToken(), STRING039)
- STRING020 = Strip(GetToken(), STRING039)
- STRING045 = Strip(GetToken(), STRING039)
- BOOLEAN021 = (STRING018 == "")
- If (BOOLEAN002 && (!BOOLEAN017 || BOOLEAN004)) Then
- If (BOOLEAN003) FPut BYTE002, "Q: "
- FPutLn BYTE002, StripAtx(STRING011)
- Endif
- STRING029 = STRING040
- If (STRING027 == "") Then
- INTEGER005 = 70
- Else
- INTEGER005 = S2I(STRING027, TBYTE014(1 + InStr("HOB", Upper(Right(STRING027, 1)))))
- Endif
- BYTE003 = -1
- BYTE006 = InStr("TPSDBCNYAV", Left(STRING024, 1))
- If (BOOLEAN017) Then
- If (BOOLEAN004) Then
- If (BOOLEAN003) FPut BYTE002, "A: "
- FPutLn BYTE002, "[N/A]"
- Endif
- ElseIf (BYTE006 == 1) Then
- If (STRING024 <> "T") Then
- STRING029 = ""
- INT006 = 2
- While (INT006 <= Len(STRING024)) Do
- If (Upper(Mid(STRING024, INT006, 1)) == "E") Then
- STRING029 = STRING029 + Mask_Ascii()
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "A") Then
- STRING029 = STRING029 + Mask_Alpha()
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "N") Then
- STRING029 = STRING029 + Mask_Num()
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "M") Then
- STRING029 = STRING029 + Mask_Num() + ".$"
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == Chr(46)) Then
- STRING029 = STRING029 + ",.;:"
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "P") Then
- STRING029 = STRING029 + Mask_Num() + "()[]+- "
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "S") Then
- STRING029 = STRING029 + " "
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "+") Then
- STRING029 = STRING029 + "+-"
- Goto LABEL005
- Endif
- If (Upper(Mid(STRING024, INT006, 1)) == "^") Then
- Inc INT006
- STRING029 = STRING029 + Mid(STRING024, INT006, 1)
- Goto LABEL005
- Endif
- :LABEL005
- Inc INT006
- EndWhile
- Endif
- If (BYTE010 == 0) Then
- BYTE010 = 60
- Endif
- Gosub LABEL025
- If ((BYTE006 == 1) && !BOOLEAN021) Gosub LABEL015
- Else
- If (BYTE006 > 0) Then
- Gosub LABEL025
- Endif
- Endif
- Gosub LABEL012
- Case 22
- STRING038 = STRING022
- BOOLEAN012 = (INTEGER004 == 347618)
- Endif
- End Select
- Select Case (Upper(STRING021))
- Case "[STOP]"
- BOOLEAN015 = 1
- Case "[END]"
- BOOLEAN015 = 1
- BOOLEAN019 = 1
- Case "[SKIP]"
- BOOLEAN017 = 1
- Case "[SKIPALL]"
- BOOLEAN017 = 1
- BOOLEAN018 = 1
- Case ""
- If (BYTE007 > 4) Then
- STRING027 = "PPE-Script: Too many levels " + STRING021
- PrintLn STRING027
- Log STRING027, 0
- Else
- Inc BYTE007
- TSTRING015(BYTE007) = STRING021
- Goto LABEL007
- Endif
- Case "[", "]"
- BOOLEAN017 = 1
- STRING037 = Mid(STRING021, 2, Len(STRING021) - 2)
- If (BOOLEAN005) FSeek BYTE007, 0, 0
- End Select
- :LABEL006
- Goto LABEL003
- :LABEL007
- FClose BYTE007
- If (BOOLEAN015) Dec BYTE007
- EndWhile
- If (BYTE002 > 0) FClose BYTE002
- If (BYTE024 > 0) Then
- FClose BYTE024
- Delete STRING044
- Endif
- If (BOOLEAN020 && BOOLEAN001) Then
- STRING027 = "PPE-Script: User failed to answer " + String(INT009) + " question(s)!"
- Log STRING027, 0
- Endif
- DispStr STRING013
- Newline
- If (BOOLEAN013) Then
- PutUser
- Endif
- End
- :LABEL008
- GetToken STRING027
- If (Left(STRING027, 1) == "@") Then
- BYTE018 = S2I(Right(STRING027, 2), TBYTE014(2))
- Else
- BYTE018 = STRING027
- Endif
- Return
- :LABEL009
- If (INT006 > 127) Then
- INT006 = INT006 - 128
- INT005 = TINTEGER006(BYTE007)
- If (INT005 < 1) INT005 = 1
- Else
- INT005 = 1
- Endif
- GetToken STRING018
- If (!Exist(STRING018)) STRING018 = STRING014 + STRING018
- If (Exist(STRING018)) Then
- STRING027 = ReadLine(STRING018, INT005)
- FClose -1
- If (STRING027 <> "") Tokenize Replace(STRING027, " ", STRING039)
- Endif
- Return
- :LABEL010
- INT003 = -1
- INT004 = -1
- INTEGER007 = -1
- STRING030 = Strip(GetToken(), STRING039)
- If (STRING030 <> "") INT003 = STRING030
- STRING030 = Strip(GetToken(), STRING039)
- If (STRING030 <> "") INT004 = STRING030
- STRING030 = Strip(GetToken(), STRING039)
- If (STRING030 <> "") INTEGER007 = STRING030
- STRING030 = Strip(GetToken(), STRING039)
- If (STRING030 == "X") Then
- INTEGER008 = -U_Fdl()
- Else
- INTEGER008 = STRING030
- Endif
- STRING030 = Strip(GetToken(), STRING039)
- If (STRING030 == "X") Then
- INTEGER009 = -U_Bdl()
- Else
- INTEGER009 = STRING030
- Endif
- STRING030 = Strip(GetToken(), STRING039)
- If (STRING030 == "X") Then
- INTEGER010 = -U_BdlDay()
- Else
- INTEGER010 = STRING030
- Endif
- INTEGER011 = Strip(GetToken(), STRING039)
- STRING025 = Strip(GetToken(), STRING039)
- STRING026 = Strip(GetToken(), STRING039)
- Return
- :LABEL011
- GetToken BYTE009
- GetToken BYTE010
- STRING019 = Strip(GetToken(), STRING039)
- STRING020 = Strip(GetToken(), STRING039)
- If (BYTE001 > 12) Return
- INT005 = INT006
- INT006 = (INT006 && 127)
- Select Case (INT006)
- Case 0
- BOOLEAN016 = 1
- Case 1
- BOOLEAN016 = BYTE003
- Case 2
- Gosub LABEL021
- Case 3
- If (INT005 > 127) Then
- BOOLEAN016 = !(STRING032 == Mid(STRING009, 2, 1))
- Else
- BOOLEAN016 = (STRING032 == Left(STRING009, 1))
- Endif
- Case 4
- BOOLEAN016 = ((U_Sec >= BYTE009) && (U_Sec <= BYTE010))
- Case 5
- BOOLEAN016 = ((U_Logons() >= BYTE009) && (U_Logons() <= BYTE010))
- Case Else
- BOOLEAN016 = ((TINTEGER006(BYTE007) >= BYTE009) && (TINTEGER006(BYTE007) <= BYTE010))
- End Select
- If (INT005 > 127) BOOLEAN016 = ! BOOLEAN016
- If (BYTE001 > 10) Then
- INT005 = 0
- STRING036 = ""
- For INT007 = 1 To Len(STRING027)
- If (Mid(STRING027, INT007, 1) == ";") Then
- Inc INT005
- If (INT005 > 4) Then
- STRING036 = Replace(Right(STRING027, Len(STRING027) - INT007), STRING039, " ")
- Break
- Endif
- Endif
- Next
- Endif
- Return
- :LABEL012
- Select Case (BYTE003)
- Case 1
- STRING021 = STRING019
- Case 0
- STRING021 = STRING020
- End Select
- :LABEL013
- Return
- :LABEL014
- Select Case (INT006)
- Case 1
- STRING023 = Mid(U_Cmnt1, BYTE009, BYTE010)
- Case 2
- STRING023 = Mid(U_Cmnt2, BYTE009, BYTE010)
- Case 3
- STRING023 = Mid(U_Ver, BYTE009, BYTE010)
- Case 4, 8
- STRING023 = Mid(U_Notes(INT006 - 4), BYTE009, BYTE010)
- Case 9, 14
- STRING023 = Mid(U_Addr(INT006 - 9), BYTE009, BYTE010)
- Case 15
- STRING023 = Mid(U_Name(), BYTE009, BYTE010)
- Case 16
- STRING023 = Mid(U_Alias, BYTE009, BYTE010)
- Case 17
- STRING023 = Mid(U_Pwd, BYTE009, BYTE010)
- Case 18
- STRING023 = Mid(U_City, BYTE009, BYTE010)
- Case 19
- STRING023 = Mid(U_BDPhone, BYTE009, BYTE010)
- Case 20
- STRING023 = Mid(U_HVPhone, BYTE009, BYTE010)
- Case Else
- STRING023 = ""
- End Select
- Return
- :LABEL015
- BYTE003 = 0
- If (!Exist(STRING018)) STRING018 = STRING014 + STRING018
- If (Exist(STRING018)) Then
- FOpen 6, STRING018, 0, 0
- STRING028 = RTrim(Upper(STRING022), " ")
- FGet 6, STRING027
- While ((STRING027 <> "") && !BYTE003) Do
- STRING027 = RTrim(Upper(STRING027), " ")
- BOOLEAN011 = (Left(STRING027, 1) == "*")
- If (BOOLEAN011) Then
- BYTE003 = (STRING028 == Mid(STRING027, 2, Len(STRING027) - 1))
- Else
- BYTE003 = (InStr(STRING028, STRING027) > 0)
- Endif
- FGet 6, STRING027
- EndWhile
- FClose 6
- Else
- STRING027 = "PPE-Script: Missing List: " + STRING018
- PrintLn STRING027
- Log STRING027, 0
- Endif
- Return
- :LABEL016
- INTEGER003 = 0
- STRING027 = Strip(STRING038, " ")
- Gosub LABEL017
- If (BYTE001 == 0) Print "."
- STRING027 = Trim(STRING007, " ")
- :LABEL017
- STRING027 = Upper(STRING027)
- INT006 = Len(STRING027)
- BYTE017 = 0
- For INT005 = 1 To INT006
- BYTE016 = Asc(Mid(STRING027, INT005, 1))
- INTEGER003 = INTEGER003 + XOr(BYTE016, BYTE017)
- BYTE017 = BYTE016
- Next
- Return
- :LABEL018
- DATE002 = STRING022
- BYTE012 = ((Date() - DATE002 + 36525 * (Year(STRING022) > 1999)) * 100) / 36525
- Return
- :LABEL019
- If (Right(STRING014, 1) <> "\") STRING014 = STRING014 + "\"
- STRING027 = STRING014 + TSTRING015(BYTE007)
- If (Right(TSTRING015(BYTE007), 4) == ".DAT") Then
- STRING027 = Left(STRING027, Len(STRING027) - 4)
- Endif
- If (Exist(STRING027 + LangExt())) Then
- TSTRING015(BYTE007) = STRING027 + LangExt()
- ElseIf (Exist(STRING027)) Then
- TSTRING015(BYTE007) = STRING027
- ElseIf (InStr(TSTRING015(BYTE007), "\") == 0) Then
- TSTRING015(BYTE007) = STRING027 + ".DAT"
- Endif
- If (Exist(TSTRING015(BYTE007))) Goto LABEL020
- STRING027 = "PPE-Script: Missing Script: " + TSTRING015(BYTE007)
- PrintLn STRING027
- Log STRING027, 0
- Stop
- :LABEL020
- Return
- :LABEL021
- If (BYTE010 == 0) BYTE010 = 255
- BOOLEAN016 = ((BYTE012 >= BYTE009) && (BYTE012 <= BYTE010))
- Return
- :LABEL022
- If (INT003 > -1) Then
- U_Sec = INT003
- If (BOOLEAN001) Then
- STRING027 = "PPE-Script: User level set to: " + String(INT003)
- Log STRING027, 0
- Endif
- Endif
- If (INT004 > -1) U_ExpSec = INT004
- If (INTEGER007 > -1) U_ExpDate = Date() + INTEGER007
- If (INTEGER008 <> 0) AdjTFiles INTEGER008
- If (INTEGER009 <> 0) AdjTBytes INTEGER009
- If (INTEGER010 <> 0) AdjDBytes INTEGER010
- If (EvtTimeAdj()) Goto LABEL023
- If (INTEGER011 <> 0) AdjTime INTEGER011
- :LABEL023
- If (STRING025 <> "") Then
- If (BOOLEAN001) Then
- STRING027 = "PPE-Script: User registered in: " + STRING025
- Log STRING027, 0
- Endif
- STRING027 = STRING025
- BYTE005 = 1
- Gosub LABEL024
- Endif
- If (STRING026 <> "") Then
- STRING027 = STRING026
- BYTE005 = 2
- Gosub LABEL024
- Endif
- BOOLEAN013 = 1
- Return
- :LABEL024
- STRING027 = Replace(STRING027, ",", ";")
- Tokenize STRING027
- STRING031 = "-"
- While (STRING031 <> "") Do
- GetToken STRING031
- If (STRING031 <> "") Then
- INT006 = InStr(STRING031, "-")
- If (INT006 > 0) Then
- For INT005 = Left(STRING031, INT006 - 1) To Mid(STRING031, INT006 + 1, Len(STRING031) - INT006)
- ConfFlag INT005, BYTE005
- Next
- Continue
- Endif
- ConfFlag STRING031, BYTE005
- Endif
- EndWhile
- Return
- :LABEL025
- BOOLEAN016 = 0
- BYTE004 = 0
- Select Case (BYTE006)
- Case 2
- STRING029 = Mask_Num() + "()[]-+ "
- BYTE010 = 12
- Case 3
- If (BOOLEAN021) Then
- STRING029 = STRING009 + " "
- Else
- STRING029 = STRING018
- Endif
- BYTE010 = 1
- INTEGER005 = Or(INTEGER005, 8)
- Case 8
- BYTE010 = 1
- Case 10
- If (BYTE010 == 0) BYTE010 = 25
- End Select
- :LABEL026
- If ((STRING045 <> "") && (InStr(STRING029, "?") == 0)) STRING029 = STRING029 + "?"
- STRING035 = STRING011
- While (!BOOLEAN016 && (BYTE004 < BYTE013)) Do
- If (Right(STRING035, 1) == "?") Then
- Color BYTE019
- Print Left(STRING035, 73)
- STRING011 = ""
- If ((BYTE006 == 5) || (BYTE006 == 7)) Then
- Newline
- Goto LABEL028
- Endif
- If (BOOLEAN008) Then
- Color BYTE021
- Print "Min=", BYTE009
- Endif
- Newline
- If (BOOLEAN009) Then
- Color BYTE022
- If (!AnsiOn() || (And(INTEGER005, 2) == 0)) Then
- Print " ("
- Goto LABEL027
- Endif
- Print " "
- :LABEL027
- Print Left(STRING033, BYTE009)
- Color BYTE023
- Print Left(STRING034, BYTE010 - BYTE009)
- If (!AnsiOn() || (And(INTEGER005, 2) == 0)) Then
- INTEGER005 = (INTEGER005 && !4)
- PrintLn ")"
- Goto LABEL028
- Endif
- PrintLn ""
- Endif
- Endif
- :LABEL028
- Color BYTE020
- If ((BYTE006 >= 1) && (BYTE006 <= 3)) Then
- InputStr STRING011, STRING022, BYTE019, BYTE010, STRING029, INTEGER005
- If (BYTE006 == 3) Then
- If (STRING022 == "") STRING022 = " "
- BYTE003 = (InStr(STRING029, STRING022) == 1)
- BOOLEAN016 = ((Len(STRING022) >= BYTE009) && (InStr(STRING029, STRING022) > 0))
- Else
- BOOLEAN016 = (Len(STRING022) >= BYTE009)
- Endif
- Else
- Select Case (BYTE006)
- Case 4, 5
- InputDate STRING011, STRING022, BYTE019
- DATE002 = STRING022
- STRING022 = DATE002
- BOOLEAN016 = ValDate(STRING022)
- If (STRING027 <> "") Then
- BOOLEAN016 = 1
- ElseIf (BOOLEAN016 && (BYTE006 == 5)) Then
- Gosub LABEL018
- Gosub LABEL021
- If (!BOOLEAN021) BOOLEAN016 = BOOLEAN016 && (InStr(STRING018, STRING032) > 0)
- BYTE003 = BOOLEAN016
- BOOLEAN016 = 1
- Endif
- Case 6
- InputCC STRING011, STRING022, BYTE019
- BOOLEAN016 = FmtCC(BOOLEAN016)
- BOOLEAN016 = ValCC(STRING022)
- Case 7
- InputInt STRING011, STRING022, BYTE019
- TINTEGER006(BYTE007) = STRING022
- BYTE003 = ((TINTEGER006(BYTE007) >= BYTE009) && (TINTEGER006(BYTE007) <= BYTE010))
- BOOLEAN016 = (BYTE003 || !BOOLEAN021)
- Case 8
- InputYN STRING011, STRING022, BYTE019
- BOOLEAN016 = (InStr(YesChar() + NoChar(), STRING022) > 0)
- BYTE003 = (STRING022 == YesChar())
- Case 9
- InputInt STRING011, STRING022, BYTE019
- BYTE003 = (STRING022 == BYTE012)
- BOOLEAN016 = ((STRING022 > 0) || !BOOLEAN021)
- Case 10
- If (STRING035 == "") Then
- PromptStr 707, STRING022, BYTE010, STRING029, INTEGER005
- Goto LABEL029
- Endif
- InputStr STRING011, STRING022, BYTE019, BYTE010, STRING029, INTEGER005
- :LABEL029
- BYTE003 = (STRING022 == U_Ver)
- BOOLEAN016 = ((Len(STRING022) >= BYTE009) || !BOOLEAN021)
- Endif
- End Select
- If (BYTE006 > 3) Newline
- If ((STRING022 == "?") && (STRING045 <> "")) Then
- BOOLEAN016 = 0
- DispFile STRING045, 4 + 2 + 1
- ElseIf (((STRING022 == "") && (BYTE009 > 0)) && (BYTE006 <> 7)) Then
- BOOLEAN016 = 0
- Inc BYTE004
- If (BYTE004 < BYTE013) DispText 117, 2048 + 64
- Else
- If (BOOLEAN016) Goto LABEL030
- Inc BYTE004
- If (BYTE004 < BYTE013) DispText 56, 2048 + 64
- Endif
- :LABEL030
- If (BYTE004 == BYTE013) Then
- Color 12
- Print "Attempt to answer has"
- DispText 577, 2048 + 64
- Endif
- If (BOOLEAN010) Newline
- EndWhile
- DefColor
- If (BOOLEAN003 && !BOOLEAN022) FPut BYTE002, "A: "
- If ((BYTE024 > 0) && !BOOLEAN022) FPut BYTE024, "A: "
- If (BOOLEAN016) Then
- If (!BOOLEAN022) FPutLn BYTE002, STRING022
- If ((BYTE024 > 0) && !BOOLEAN022) FPutLn BYTE024, STRING022
- Else
- If (!BOOLEAN022) FPutLn BYTE002, "[NO ANSWER]"
- If ((BYTE024 > 0) && !BOOLEAN022) FPutLn BYTE024, "[NO ANSWER]"
- BOOLEAN020 = 1
- Inc INT009
- Endif
- Return
- :LABEL031
- FAppend BYTE002, STRING027, 2, 3
- STRING027 = Space(62)
- FPutLn BYTE002, Replace(STRING027, " ", "*")
- FPut BYTE002, "From: ", U_Name(), ", "
- FPut BYTE002, Date(), " (", Left(Time(), 5)
- If (PcbNode() > 0) FPut BYTE002, ") Node ", PcbNode()
- FPutLn BYTE002, " Sec ", U_Sec, " Exp ", U_ExpDate
- Return
- :LABEL032
- BYTE003 = 0
- STRING048 = CallId()
- If (STRING048 == "") Return
- If (BYTE025 == 0) Then
- BYTE025 = InStr(STRING048, STRING049)
- If (BYTE025 == 0) Return
- BYTE026 = Len(STRING049)
- Endif
- INT006 = BYTE025 + BYTE026
- If (BOOLEAN014) Then
- Gosub LABEL033
- Else
- STRING027 = Mid(STRING048, INT006, 10)
- Endif
- STRING053 = Upper(Trim(Left(STRING027, 10), " "))
- Select Case (STRING053)
- Case STRING050
- STRING021 = STRING046
- Return
- Case STRING051
- STRING021 = STRING047
- Return
- Case 10
- Return
- End Select
- STRING022 = Left(STRING053, 3) + "-" + Mid(STRING053, 4, 3) + "-" + Right(STRING053, 4)
- Gosub LABEL015
- Gosub LABEL012
- If (((STRING052 <> "") && ((BOOLEAN016 == 1) && BYTE003)) || ((BOOLEAN016 == 0) && !BYTE003)) Then
- FAppend 6, STRING052, 2, 3
- FPutLn 6, STRING054, STRING022, STRING055, RTrim(U_Name(), " "), STRING055, Date(), " (PPE-SCR)", STRING054
- FClose 6
- Endif
- BYTE003 = 1
- Return
- :LABEL033
- STRING027 = ""
- INT006 = INT006 + 2
- BYTE027 = S2I(Mid(STRING048, INT006, 2), 16)
- While (BYTE027 > 0) Do
- INT006 = INT006 + 2
- STRING027 = STRING027 + Chr(S2I(Mid(STRING048, INT006, 2), 16))
- Dec BYTE027
- EndWhile
- Return
-
- ;------------------------------------------------------------------------------
- ;
- ; Usage report (before postprocessing)
- ;
- ; ■ Statements used :
- ;
- ; 1 End
- ; 6 Color
- ; 286 Goto
- ; 338 Let
- ; 12 Print
- ; 12 PrintLn
- ; 231 If
- ; 2 ConfFlag
- ; 3 DispFile
- ; 3 FOpen
- ; 3 FAppend
- ; 8 FClose
- ; 20 FGet
- ; 7 FPut
- ; 10 FPutLn
- ; 2 ResetDisp
- ; 1 GetUser
- ; 1 PutUser
- ; 1 DefColor
- ; 1 Delete
- ; 1 AdjTime
- ; 8 Log
- ; 2 InputStr
- ; 2 InputYN
- ; 2 InputInt
- ; 1 InputCC
- ; 1 InputDate
- ; 42 Gosub
- ; 23 Return
- ; 1 PromptStr
- ; 1 Delay
- ; 7 Inc
- ; 2 Dec
- ; 11 Newline
- ; 9 Tokenize
- ; 30 GetToken
- ; 1 Shell
- ; 3 DispText
- ; 5 Stop
- ; 1 Call
- ; 3 DispStr
- ; 1 WrUSys
- ; 1 RdUSys
- ; 1 Message
- ; 1 FSeek
- ; 1 LastIn
- ; 1 AdjDBytes
- ; 1 AdjTBytes
- ; 1 AdjTFiles
- ;
- ;
- ; ■ Functions used :
- ;
- ; 12 -
- ; 4 *
- ; 1 /
- ; 1 %
- ; 79 +
- ; 35 -
- ; 136 ==
- ; 32 <>
- ; 13 <
- ; 16 <=
- ; 34 >
- ; 22 >=
- ; 193 !
- ; 47 &&
- ; 16 ||
- ; 16 Len(
- ; 22 Upper()
- ; 35 Mid()
- ; 21 Left()
- ; 13 Right()
- ; 3 Space()
- ; 9 Chr()
- ; 3 Asc()
- ; 12 InStr()
- ; 3 RTrim()
- ; 2 Trim()
- ; 4 Date()
- ; 1 Time()
- ; 4 U_Name()
- ; 2 U_Logons()
- ; 1 U_Fdl()
- ; 1 U_BdlDay()
- ; 1 U_Bdl()
- ; 1 Year()
- ; 2 NoChar()
- ; 3 YesChar()
- ; 1 StripAtx()
- ; 14 Replace()
- ; 33 Strip()
- ; 2 String()
- ; 1 Mask_Alpha()
- ; 4 Mask_Num()
- ; 2 Mask_Ascii()
- ; 4 PPEPath()
- ; 1 ValDate()
- ; 2 PcbNode()
- ; 1 ReadLine()
- ; 2 CurSec()
- ; 38 GetToken()
- ; 1 CallId()
- ; 10 Exist()
- ; 4 S2I()
- ; 2 LangExt()
- ; 2 AnsiOn()
- ; 1 ValCC()
- ; 1 FmtCC()
- ; 2 And()
- ; 1 Or()
- ; 1 XOr()
- ; 5 DefColor()
- ; 1 PPEName()
- ; 1 LastAns()
- ; 1 EvtTimeAdj()
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Analysis flags : FWASCaH
- ;
- ; F - Change conference flags status ■ 2
- ; This may be normal for a SELECT replacement but it may also be
- ; a way to get access to conferences a user is not allowed to.
- ; ■ Search for : CONFFLAG, CONFUNFLAG
- ;
- ; W - Write user ■ 5
- ; Program writes a user record. Although this may be normal for a
- ; User Editor, it may also be a way to modify an account level.
- ; ■ Search for : PUTUSER
- ;
- ; A - Adjust online time remaining ■ 5
- ; Program modify the amount of online time remaining, this may
- ; be a way to bypass time limits
- ; ■ Search for : ADJTIME
- ;
- ; S - Shell to DOS ■ 5
- ; This may be normal if the PPE need to execute an external command,
- ; but may be actually anything... nasty (formating HD, rebooting,...)
- ; or usefull (sorting, maintenance,...). Check!
- ; ■ Search for : SHELL
- ;
- ; C - Call child PPE ■ 3
- ; This is usually normal, but may be a tricky way to launch some
- ; sysop-only commands.
- ; ■ Search for : CALL
- ;
- ; a - Adjust ratio ■ 4
- ; User's ratio is adjusted by changing the amount of files/bytes
- ; uploaded. This may be normal for a user editor.
- ; ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
- ;
- ; H - Read Password or Password History ■ 5
- ; Program is reading the user's password or last password history
- ; This may be ok for a password manager, but it is very suspect. Check!
- ; ■ Search for : U_PWDHIST, U_PWD
- ;
- ;------------------------------------------------------------------------------
- ;
- ; Postprocessing report
- ;
- ; 4 For/Next
- ; 6 While/EndWhile
- ; 86 If/Then or If/Then/Else
- ; 10 Select Case
- ;
- ;------------------------------------------------------------------------------
- ; AEGiS Corp - Break the routines, code against the machines!
- ;------------------------------------------------------------------------------
-